package domain;

import java.util.Vector;

import persistencia.AdministradorPersistenciaPlan;
import view.PlanView;

public class Paquete extends Plan {

	private Vector<Plan> planes;
	private String nombre;
	private AdministradorPersistenciaPlan administradorPersistenciaPlan;

	public Paquete(int planId, String nombre) {
		super(true, planId);

		planes = new Vector<Plan>();
		this.nombre = nombre;
		administradorPersistenciaPlan = AdministradorPersistenciaPlan
				.getInstancia();
	}

	public void agregarPlan(Plan plan) {
		planes.add(plan);
	}

	public String getNombre() {
		return nombre;
	}

	public Vector<Plan> getChildPlanes() {
		return planes;
	}

	@Override
	public void persistir() {
		administradorPersistenciaPlan.insertarPaquete(this);
	}

	@Override
	public boolean agregablePaquete() {
		return false;
	}

	@Override
	public PlanView getView() {
		String paqueteNombre;
		if (getNombre() == null)
			paqueteNombre = "Paquete";
		else
			paqueteNombre = "Paquete: " + getNombre();

		return new PlanView(this.getId(), paqueteNombre, this.isFacturable());
	}

	@Override
	public float calcularCosto(Consumo consumo) {
		float costo = 0;

		for (Plan p : planes) {
			costo += p.calcularCosto(consumo);
		}

		return costo;
	}
}
